// @param{number[]} nums
// @param{number} target
// @return {number[]}
// 知和求两数
const twoSum = function (nums, target) {
  const map = new Map();
  for (let i = 0; i < nums.length; i++) {
    if (i == 0) {
      map.set(nums[0], 0);
      // map.get根据键获取对应的值
    } else if (map.get(target - nums[i]) != undefined) {
      return [i, map.get(target - nums[i])];
    } else {
      // map.set添加键值
      map.set(nums[i],i);
    }
  }
};

const nums=[2,11,7,5]
const target=9

console.log(twoSum(nums,target));

const twoSum1 = function (nums, target) {
  const map = new Map();
  for (let i = 0; i < nums.length; i++) {
    if (i == 0) {
      map.set(nums[0], 0);
    } else if (map.get(target - nums[i]) != undefined) {
      return [i, map.get(target - nums[i])];
    } else {
      map.set(nums[i],i);
    }
  }
};

const twoSum2 = function (nums, target) {
  const map = new Map();
  for (let i = 0; i < nums.length; i++) {
    if (i == 0) {
      map.set(nums[0], 0);
    } else if (map.get(target - nums[i]) != undefined) {
      return [i, map.get(target - nums[i])];
    } else {
      map.set(nums[i],i);
    }
  }
};